/**
 * <p>Copyright:Copyright(c) 2019</p>
 * <p>Company:Professional</p>
 * <p>Package:com.cesgroup.zw.spring.boot.echarts</p>
 * <p>File:SimpleEChartParam.java</p>
 * <p>类更新历史信息</p>
 * @todo chanlong(陈龙) 创建于 Jun 10, 2019 2:11:28 PM
 */
package com.cesgroup.zw.spring.boot.charts.model;

import java.io.Serializable;

import cn.hutool.core.util.ReflectUtil;

/**
 * <p>描述: </p>
 * <p>Company: Professional</p>
 * @author chanlong(陈龙)
 * @date Jun 10, 2019 2:11:28 PM
 * @version 1.0.2019
 */
public interface IChartsParam<C extends IComponent, T> extends Serializable {

	/**
	 * 返回数据集.
	 * @author chanlong(陈龙)
	 * @date Jun 13, 2019 10:28:09 AM
	 */
	T getDataset();
	
	/**
	 * 返回图表系列.
	 * @author chanlong(陈龙)
	 * @date Jun 13, 2019 10:28:22 AM
	 */
	IComponent[] getSeries();
	
	// 根据指定大小（一般为数据集大小），返回图表系列
	default IComponent[] getSeries(final Class<C> clazz, final Integer size) {
		IComponent[] components = new IComponent[size];
		for(int i = 0; i < size; i++) {
			components[i] = ReflectUtil.newInstance(clazz);
		}
		return components;
	}
}
